package pers.mihao.quickstream.common.task.domain.scheduler;

import lombok.*;
import pers.mihao.quickstream.common.task.scheduler.TaskInvokeRes;

import java.util.Date;

/**
 * 指定时间 执行一次
 *
 * @author mihao
 * @since 2024/11/15
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class InvokeOnceTaskTimer implements AutomaticTaskTimer {

    Long nextTime;

    @Override
    public Date getNextInvokeTime(TaskInvokeRes lastTaskInvokeRes, int invokeNum) {
        return lastTaskInvokeRes != null ? null : new Date(nextTime);
    }

    @Override
    public String type() {
        return "INVOKE_ONCE";
    }
}
